package entidades;

import java.io.Serializable;

/**
 * Classe que representa uma ação no programa.
 * É constituída de uma empresa, que identifica a ação, e a quantidade de ações
 * desta empresa.
 * 
 */
public class Acao implements Serializable {
    private String empresa;
    private int quantidade;

    /**
     * Construtor da classe, que já incializa o objeto com os valores da empresa e a
     * quantidade de ações.
     * @param empresa nome da empresa da ação.
     * @param quantidade quantidade de ações.
     */
    public Acao(String empresa, int quantidade) {
        this.empresa = empresa;
        this.quantidade = quantidade;
    }   

    /**
     * Método sincronizado que retorna o nome da empresa.
     * @return nome da empresa.
     */
    public synchronized String getEmpresa() {
        return empresa;
    }
    
    /**
     * Método sincronizado que altera o nome da empresa.
     * @param empresa nome da empresa.
     */
    public synchronized void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    /**
     * Método sincronizado que retorna a quantidade de ações.
     * @return quantidade de ações.
     */
    public synchronized int getQuantidade() {
        return quantidade;
    }

    /**
     * Método sincronizado que altera a quantidade de ações.
     * @param quantidade 
     */
    public synchronized void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }   
    
    /**
     * Método sincronizado que altera a descrição/label do objeto.
     * @return descrição alterada.
     */
    public synchronized String toString() {
        return empresa;
    }
}
